package cn.wolfcode.wolf2w.business.config;


import lombok.Data;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
public class ElasticsearchConfig {
    private String host;
    private int port;

    @Bean
    ///@Bean 注解：将方法返回的对象（RestHighLevelClient 实例）注册为 Spring 容器中的 Bean。
    /// 后续其他组件可通过 @Autowired 直接注入使用，无需手动创建。
    public RestHighLevelClient restHighLevelClient(){
         ///通过 HttpHost 构建 ES 连接信息：参数依次为 host（主机地址）、port（端口）、
        ///      "http"（通信协议，ES 支持 HTTP/HTTPS）；
        ///用 RestClient.builder() 包装 HttpHost，创建底层客户端；
        ///基于底层客户端实例化 RestHighLevelClient（ES 高级客户端）并返回。
        return  new RestHighLevelClient(RestClient.builder(new HttpHost(host,port,"http")));
    }

}
